/**
 * Copyright (c) 2020-2021 浦东大爷 All rights reserved.
 * 机会永远都是留给有准备的人
 */
package com.job.moudle2.task2;

import java.io.IOException;
import java.util.Scanner;

/**
 * @author: gitwo
 * @date: 2020-11-10
 * @description:
 */
public class ChessboardTest {

    public static void main(String[] args) throws IOException {
        System.out.println("棋盘数据正在初始化...");
        Chessboard chessboard = new Chessboard();
        Scanner scanner = new Scanner(System.in);
        int x = 0;
        int y = 0;
        String input;
        System.out.println("棋盘已经准备就绪，游戏开始=================>");
        do {
//            if(chessboard.isWhite()) System.out.print("白色方下棋(请输入棋盘坐标)：");
//            else System.out.print("白色方下棋(请输入棋盘坐标)：");
            System.out.print((chessboard.isWhite()? "白色":"黑色") + "方下棋(请输入棋盘坐标)：");
            input = scanner.next();
            x = input.charAt(0); // ascii 获取的数据不是我们想要的数据，所以需要进行一次转换
            x = getBoardCoordinate(x);
            y = input.charAt(1);
            y = getBoardCoordinate(y);
            if(chessboard.playChess(x, y)) chessboard.referee(x, y);
            else {
                System.out.println("坐标输入有误，请重新输入");
                continue;
            }
            chessboard.show();
        } while(!chessboard.isEnd()); //isEnd返回true的时候结束，返回false的时候继续
        System.in.close();  // 主动释放资源
    }

    public static int getBoardCoordinate(int coordinate) {
        if (coordinate > 47 && coordinate < 58) coordinate -= 47; // 字符是0-9则转换成int的棋盘数据，棋盘数据比数组下标大，0-9对应的下标是1-10，
        else if (coordinate > 96 && coordinate < 103) coordinate -= 86; // 字符a-f转换成棋盘数据int，a-f对应的下标是11-16
        return coordinate;
    }
}
